This invention relates generally to artificial neurons for simulating the functions of biological neurons and, more particularly, to stochastic or probabilistic artificial neurons.
Artificial neurons and neural networks have been extensively studied in an attempt to accurately simulate the various functions of the human brain. The human brain employs trillions of interconnected nerve cells, or neurons, to perform its various functions, such as memory, learning and pattern recognition. A neuron receives stimuli, in the form of electrical input pulses, from other neurons or receptor sense organs, such as the eyes and ears. The neuron receives the stimuli through its synapses, which can be either excitory or inhibitory. Excitory synapses bring the neuron closer to firing, while inhibitory synapses prevent the neuron from firing. The firing of the neuron generates electrical output pulses with varying pulse repetition rates, which provide stimuli to other neurons or control effector organs, such as the muscles.
A typical artificial neuron of the prior art includes, in series, a plurality of weighted inputs, or synapses, an adder, and a soft saturation or sigmoid function. The weighted inputs are summed together in the adder and limited by the saturation function to provide a nonlinear weighted sum function of the inputs. Each weighted input or synapse generates a potential which varies in magnitude and is either positive or negative in sign depending on whether the synapse is excitory or inhibitory. Large numbers of these artificial neurons are then interconnected in a large array to form a neural network.
An artificial neural network must exhibit the ability to learn if it is to properly simulate the human brain. Biological neurons learn through a variation in the strength of their intersynaptic connections which alters the manner in which they react to stimuli. An artificial neural network learns in the same manner, by a variation in the input or synaptic weightings of the artificial neurons. In order to train an artificial neural network, an input signal is applied to the network and the actual output response is compared with the desired output response. The difference or error between the two responses is applied to a training algorithm which modifies the synaptic weightings until the actual output response converges with the desired output response. This convergence process is repeated for different input signals until the neural network is able to recognize the various input signals.
Artificial neurons can be implemented using either analog or digital circuits. Analog circuits have the potential for high densities and fast operation, but are susceptible to performance degradation due to noise and temperature changes. Multiple functionally-identical analog circuits are also difficult to fabricate. Digital integrated circuits are easily manufactured and are functionally identical. However, multiplication and addition of fixed-format digital values requires excessive amounts of circuitry. Accordingly, there has been a need for a more efficient digital implementation of an artificial neuron, especially for such applications as providing target recognition for missiles and star recognition for satellite navigation. The present invention clearly fulfills this need.